package com.z100h.supplychain.evidence.facade;

import java.util.List;

import com.jeeplus.core.persistence.Page;
import com.z100h.supplychain.core.EvidenceType;
import com.z100h.supplychain.evidence.entity.WarehouseReceiptVO;
import com.z100h.supplychain.sku.entity.SkuAmount;

/**
 * 入库单根据采购单生成也可以单独生成
 * 入库流程开发
 * 入库单分类型 1.采购入库 2.复壮入库
 */
public interface WarehousingFacade<WarehouseReceipt> {

	/**
	 * 保存或者修改
	 *
	 * @param warehouseReceipt
	 * @return
	 */
	public void save(WarehouseReceipt warehouseReceipt) throws Throwable;

	public void save(EvidenceType evidenceType, List<SkuAmount> list, String comment) throws Throwable;

	/**
	 * 采购批量保存或者修改
	 *
	 * @param warehouseReceipt
	 * @return
	 */
	public void batchSave(WarehouseReceipt warehouseReceipt);

	/**
	 * 获取入库单明细
	 *
	 * @param warehouseReceipt
	 * @return
	 */
	public WarehouseReceipt getWarehouseReceipt(WarehouseReceipt warehouseReceipt);

	/**
	 * 查询列表
	 *
	 * @param page
	 * @param warehouseReceipt
	 * @return
	 */
	public Page<WarehouseReceipt> findWarehouseReceiptByPage(Page<WarehouseReceipt> page,
			WarehouseReceipt warehouseReceipt);

	/**
	 * 入库下载打码
	 *
	 * @param warehouseReceipt
	 * @return
	 */
	public List<WarehouseReceiptVO> findWarehouseReceiptToResourceByExcel(WarehouseReceipt warehouseReceipt);

	/**
	 * 通过采购单创建入库单
	 * @param warehouseReceipt
	 * @return
	 */
	public String createWarehouseReceipt(WarehouseReceipt warehouseReceipt) throws Throwable;

	/**
	 * 扫码过机确认接口
	 * 
	 * @param warehouseReceipt
	 * @author: Elvin Zhao - 279152260@qq.com 
	 * @date: Created on 2019年4月9日 上午10:51:28
	 */
	public void confirm(com.z100h.supplychain.evidence.entity.WarehouseReceipt warehouseReceipt);

	public void saveAndQc(WarehouseReceipt warehouseReceipt);
}
